/**
 * @param {string} path
 * @returns {Boolean}
 */
import {Toast, Dialog} from "vant";
import others from "../api/others";
import job from "../api/job";
import router from "../router";

export function isExternal(path) {
  return /^(https?:|mailto:|tel:)/.test(path)
}

/**
 * @param {string} str
 * @returns {Boolean}
 */
export function validUsername(str) {
  const valid_map = ['admin', 'editor']
  return valid_map.indexOf(str.trim()) >= 0
};


async function apply(jobId) {
  const res = await job.sendTransmit({job_id: jobId})
  if (res.code === 200) {
    Toast('已提交申请！请耐心等待上游公司的审核。')
  }
};



// 未申请
function noApply(jobId){
  Dialog.confirm({
    title: '尚未授权',
    message: '您没有申请授权。请先点击申请授权！',
    messageAlign: 'left',
    confirmButtonText: '申请授权'
  }).then(() => {
    apply(jobId);
  })
    .catch(() => {
      // on cancel
    })
};


// 申请过，但是还没有操作
function noAuditApply(){
  Dialog.alert({
    title: '已申请过授权',
    message: '您以前申请过授权。不可再次申请，请耐心等待上游公司的审核！',
    messageAlign: 'left',
  }).then(() => {
  })
};

// 已授权
function auditSuccess(){
  return true;
};


// 不授权
function noAudit(jobId){
  Dialog.confirm({
    title: '授权未通过',
    message: '上游公司没有通过您的授权申请，抱歉！您无法转发。您可前往职位详情，联系对方公司进行授权。您确定前往职位详情吗？',
    messageAlign: 'left',
    confirmButtonText: '前往职位详情'
  }).then(() => {
    router.push({
      path: '/jobDetail',
      query: {
        id: jobId,
      }
    })
  })
    .catch(() => {
      // on cancel
    })
};



export async function isOtherCompanyCanShare(jobId) {
  Toast.loading({
    message: '正在获取转发的权限...',
    forbidClick: true,
  });
  // 异步校验
  const resp = await others.otherCompanyCanShareJob(jobId);
  if (resp.code === 200) {
    // 只要有audit字段表示就可以转发
    // return resp.data && resp.data.audit === '1';

    if(resp.data && resp.data.audit === '1'){
      return true;
    };


    // -1 未申请   0 为申请未授权呢    1 授权  2不授权
    const auditStateObj = {
      '-1': noApply,
      '0': noAuditApply,
      '1': auditSuccess,
      '2': noAudit
    };

    auditStateObj[resp.data.audit](jobId);
  }
};
